home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / gnu / gawk / gawk213b.zoo / test / t.re < prev    next >
Text File  |  1989-07-21  |  2KB  |  189 lines

  1. echo T.re: tests of regular expression code
  2. AWK=${AWK-./gawk}
  3.  
  4. $AWK '
  5. BEGIN {
  6.     FS = "\t"
  7.     awk = "'$AWK'"
  8. }
  9. NF == 0 {
  10.     next
  11. }
  12. $1 != "" {    # new test
  13.     re = $1
  14. }
  15. $2 != "" {    # either ~ or !~
  16.     op = $2
  17.     if (op == "~")
  18.         neg = "!"
  19.     else if (op == "!~")
  20.         neg = ""
  21. }
  22. $3 != "" {    # new test string
  23.     str = $3
  24. }
  25. $3 == "\"\"" {    # explicit empty line
  26.     $3 = ""
  27. }
  28. NF > 2 {    # generate a test
  29.     input = $3
  30.     test = sprintf("echo '"'"'%s'"'"' | %s '"'"'%s/%s/ {print \"%d fails %s %s %s\"}'"'"'",
  31.         input, awk, neg, re, NR, re, op, input)
  32.     printf(" %3d   %s %s %s:\n", NR, re, op, input)
  33.     # print "test is |" test "|"
  34.     system(test)
  35. }
  36. ' <<\!!!
  37. a    ~    a
  38.         ba
  39.         bab
  40.     !~    ""
  41.         x
  42.         xxxxx
  43. .    ~    x
  44.         xxx
  45.     !~    ""            
  46. .a    ~    xa
  47.         xxa
  48.         xax
  49.     !~    a
  50.         ax
  51.         ""
  52. $    ~    x
  53.         ""
  54. .$    ~    x
  55.         xx
  56.     !~    ""
  57. a$    ~    a
  58.         ba
  59.         bbba
  60.     !~    ab
  61.         x
  62.         ""
  63. ^    ~    x
  64.         ""
  65.         ^
  66. ^a$    ~    a
  67.     !~    xa
  68.         ax
  69.         xax
  70.         ""
  71. ^a.$    ~    ax
  72.         aa
  73.     !~    xa
  74.         aaa
  75.         axy
  76.         ""
  77. ^$    ~    ""
  78.     !~    x
  79.         ^
  80. ^.a    ~    xa
  81.         xaa
  82.     !~    a
  83.         ""
  84. ^.*a    ~    a
  85.         xa
  86.         xxxxxxa
  87.     !~    ""
  88. ^.+a    ~    xa
  89.         xxxxxxa
  90.     !~    ""
  91.         a
  92.         ax
  93. a*    ~    ""
  94.         a
  95.         aaaa
  96.         xa
  97.         xxxx
  98. aa*    ~    a
  99.         aaa
  100.         xa
  101.     !~    xxxx
  102.         ""
  103. \$    ~    x$
  104.         $
  105.         $x
  106.         x$x
  107.     !~    ""
  108.         x
  109. \.    ~    .
  110.     !~    x
  111.         ""
  112. xr+y    ~    xry
  113.         xrry
  114.         xrrrrrry
  115.     !~    ry
  116.         xy
  117.         xr
  118. xr?y    ~    xy
  119.         xry
  120.     !~    xrry
  121. a?b?c?    ~    ""
  122.         x
  123. ^a?b?x    ~    x
  124.         ax
  125.         bx
  126.         abx
  127.         xa
  128.     !~    ""
  129.         ab
  130.         aba            
  131. [0-9]    ~    1
  132.         567
  133.         x0y
  134.     !~    abc
  135.         ""
  136. [^0-9]    !~    1
  137.         567
  138.         ""
  139.     ~    abc
  140.         x0y
  141. x[0-9]+y    ~    x0y
  142.         x23y
  143.         x12345y
  144.     !~    0y
  145.         xy
  146. x[0-9]?y    ~    xy
  147.         x1y
  148.     !~    x23y
  149. x[[]y    ~    x[y
  150.     !~    xy
  151.         x[[]y
  152.         x]y
  153. x[^[]y    ~    xay
  154.     !~    x[y
  155. x[-]y    ~    x-y
  156.     !~    xy
  157.         x+y
  158. x[^-]y    ~    x+y
  159.     !~    x-y
  160.         xy
  161. [0\-9]    ~    0
  162.         -
  163.         9
  164.     !~    1
  165.         ""
  166. [-1]    ~    -
  167.         1
  168.     !~    0
  169. [0-]    ~    0
  170.         -
  171.     !~    1
  172. [^-0]    ~    x
  173.         ^
  174.     !~    -
  175.         0
  176.         ""
  177. [^0-]    ~    x
  178.         ^
  179.     !~    -
  180.         0
  181.         ""
  182. x|y    ~    x
  183.         y
  184.         xy
  185.     !~    a
  186.         ""
  187. ^x\|y$    ~    x|y
  188.     !~    xy
  189.